#define _CRT_SECURE_NO_WARNINGS
#include "SList.h"
int main()
{
	SListNode* phead;
	SListInit(&phead);
	SListPushFront(&phead, 1);
	SListPrint(phead);
	SListPushFront(&phead, 2);
	SListPrint(phead);
	SListPushFront(&phead, 3);
	SListPrint(phead);
	SListPopFront(&phead);
	SListPrint(phead);
	SListPopFront(&phead);
	SListPrint(phead);
	SListPushBack(&phead, 4);
	SListPrint(phead);
	SListPushBack(&phead, 5);
	SListPrint(phead);	
	SListPushBack(&phead, 6);
	SListPrint(phead);
	SListNode* pos = SListFind(phead, 4);
	SListInsert(&phead, pos, 7);
	SListPrint(phead);
	//SListErase(&phead, pos);
	//SListPrint(phead);
	SListInsertAfter(&phead, pos, 9);
	SListPrint(phead);
	//SListPopBack(&phead);
	//SListPrint(phead);
	//SListPopBack(&phead);
	//SListPrint(phead);

	//SListPopFront(&phead);
	//SListPrint(phead);
	//SListPopFront(&phead);
	//SListPrint(phead);
	return 0;
}

//struct ListNode* removeElements(struct ListNode* head, int val) {
//	struct ListNode newhead;
//	newhead.next = NULL;
//	struct ListNode* phead = &newhead;
//	struct ListNode* ptail = &newhead;
//	struct ListNode* pcur1 = head;
//	while (pcur1)
//	{
//		if (pcur1->val != val)
//		{
//			ptail->next = pcur1;
//			ptail = ptail->next;
//		}
//		pcur1 = pcur1->next;
//	}
//	if (ptail)
//		ptail->next = NULL;
//	return phead->next;
//}


//struct ListNode* reverseList(struct ListNode* head) {
//	struct ListNode* pcur = head;
//	struct ListNode* prev = NULL;
//	struct ListNode* pnext = head;
//	while (pcur)
//	{
//		if (pcur)
//			pnext = pcur->next;
//		pcur->next = prev;
//		prev = pcur;
//		pcur = pnext;
//	}
//	return prev;
//}